package top.xiaoshuaila.searescue.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import top.xiaoshuaila.searescue.controller.baojin;
import top.xiaoshuaila.searescue.controller.index;
import top.xiaoshuaila.searescue.pojo.Helmet;
import top.xiaoshuaila.searescue.pojo.Serial;
import top.xiaoshuaila.searescue.pojo.Tag;
import top.xiaoshuaila.searescue.serialport.utils.ByteUtils;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

@Component
public class MqttDataDeal {
    /*
     * 0:固件版本
     * 1:设备id
     * 2:设备类型
     * 3:保存配置
     * 4:电压采样周期(ms)
     * 5:电压滤波点数
     * 6:电压低报警阈值(mv)
     * 7:
     * 8:电压采样周期(ms)
     * 9:气压滤波点数
     * 10:气压高报警阈值
     * 11:
     * 12:
     * 13:
     * 14:uwb测距周期(ms)
     * 15:uwb信道模式
     * 16:uwb本机id
     * 17:最大保持时间
     * 18:
     * 19:
     * 20:上一状态
     * 21:当前状态
     * 22:下一状态
     * 23:
     * 24:当前电压(mv)
     * 25:
     * 26:当前气压(Pa)
     * 27:
     * 28:当前气温(0.01℃)
     * 29:
     * 30:测距结果1:距离(cm)
     * 31:测距结果1:对方编号
     * 32:测距结果1:保持时间(s)
     * 33:
     * 34:测距结果2:距离(cm)
     * 35:测距结果2:对方编号
     * 36:测距结果2:保持时间(s)
     * 37:
     * 38:测距结果3:距离(cm)
     * 39:测距结果3:对方编号
     * 40:测距结果3:保持时间(s)
     * 41:
     * 42:测距结果4:距离(cm)
     * 43:测距结果4:对方编号
     * 44:测距结果4:保持时间(s)
     * 45:
     * 46:测距结果5:距离(cm)
     * 47:测距结果5:对方编号
     * 48:测距结果5:保持时间(s)
     * 49:
     * */
     int[] arr=new int[50];
     int[] wei=new int[]{
            2,2,2,2,2,2,2,2,2,2,
            4,0,2,2,2,2,2,2,2,2,
            2,2,2,2,2,2,4,0,4,0,
            2,2,2,2,2,2,2,2,2,2,
            2,2,2,2,2,2,2,2,2,2};
     @Autowired
     private index index;
     @Autowired
     private Tag tag;
     @Autowired
     private Serial serial;
     @Autowired
     private MqttService mqttService;
     public Map<Integer, Helmet> map=new HashMap<>();
    public void detail(int[]tem){
//        System.out.println(Arrays.toString(tem));
//        try{
//            if(tem[0]!=1||tem[1]!=3)return;
//            int sta=3;
//            for(int i=0;i<tem[2]/2;i++)
//            {
//                if(wei[i]==2)
//                {
//                    arr[i]=tem[sta]*(1<<8)+tem[sta+1];
//                    sta+=2;
//                }
//                else if(wei[i]==4)
//                {
//                    arr[i]=tem[sta]*(1<<8)+tem[sta+1]+tem[sta+2]*(1<<24)+tem[sta+3]*(1<<16);
//                    sta+=4;
//                }
//            }
//        }catch (Exception e){
//            e.printStackTrace();
//        }
//        Helmet helmet=new Helmet();
//        helmet.setId(arr[1]);
//        helmet.setQiyayuzhi(arr[10]);
//        helmet.setStatue(arr[21]);
//        helmet.setDianya(arr[24]);
//        helmet.setQiya(arr[26]);
//        helmet.setQiwen(arr[28]);
//        for(int i=0;i<5;i++)
//        {
//            int idx=30+4*i;
//            helmet.getDistances()[i]=new int[]{arr[idx],arr[idx+1],arr[idx+2]};
//        }
//        System.out.println(helmet);
//        if(helmet.getId()==mqttService.arrid[0])
//        {
//            mqttService.yuzhi=helmet.getQiya();
//            System.out.println("生成的阈值:"+mqttService.yuzhi);
//        }
//        else {
//            int qiya=helmet.getQiya();
//            int yuzhi= mqttService.yuzhi;
//            if(qiya>yuzhi)
//            {
//                tag.setTAG(helmet.getId());
//                if(serial.getSystemStatus()==0)
//                {
//                    serial.setSystemStatus(1);
//                    if(helmet.getStatue()==1)
//                        mqttService.Taskmsg=2;
//                }
//                else if(serial.getSystemStatus()==1)
//                {
//                    if(helmet.getStatue()==1)
//                        mqttService.Taskmsg=2;
//                }
//                else if(serial.getSystemStatus()==2)
//                    if(helmet.getStatue()!=3)
//                        mqttService.Taskmsg=3;
//            }
//            else {
//                if(Objects.equals(tag.getTAG(), helmet.getId()))
//                {
//                    serial.setSystemStatus(0);
//                    if(helmet.getStatue()==2)
//                        mqttService.Taskmsg=1;
//                }
//            }
//        }
//        map.put(helmet.getId(),helmet);
    }
}